/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.common.systemmessage.service;

import com.icinfo.cloud.common.core.page.BasePageRequest;
import com.icinfo.cloud.provider.punish.common.systemmessage.dto.SystemMessageIdRequestDto;
import com.icinfo.cloud.provider.punish.common.systemmessage.dto.SystemMessageInsertDto;
import com.icinfo.cloud.provider.punish.common.systemmessage.vo.SystemMessageListInfoVo;
import com.icinfo.framework.common.web.Result;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述:  case_system_message 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年12月09日
 */
public interface ICaseSystemMessageService extends BaseService {
    /**
     * 查询消息提醒列表
     *
     * @param pageQueryDto 消息提醒列表结果 VO
     * @return java.util.List<com.icinfo.cloud.provider.punish.common.systemmessage.vo.SystemMessageListInfoVo>
     * @author yangsizhen
     * @date 2022/12/09
     */
    List<SystemMessageListInfoVo> getSystemMessageList(BasePageRequest pageQueryDto);

    /**
     * 新增消息提醒
     *
     * @param systemMessageInsertDto 消息提醒新增Dto
     * @return com.icinfo.framework.common.web.Result<java.lang.String>
     * @author yangsizhen
     * @date 2022/12/09
     */
    void insertSystemMessage(SystemMessageInsertDto systemMessageInsertDto);

    /**
     * 消息标记已读
     *
     * @param systemMessageIdRequestDto 消息提醒id请求Dto
     * @return com.icinfo.framework.common.web.Result<java.lang.String>
     * @author yangsizhen
     * @date 2022/12/09
     */
    Result<String> updateSystemMessageRead(SystemMessageIdRequestDto systemMessageIdRequestDto);

    /**
     * 查询详细未读数量
     *
     * @return com.icinfo.framework.common.web.Result<java.lang.Integer>
     * @author yangsizhen
     * @date 2022/12/09
     */
    Result<Integer> getNoReadMessageCount();

    /**
     * 查询当前用户最新未读消息
     *
     * @return com.icinfo.framework.common.web.Result<com.icinfo.cloud.provider.punish.common.systemmessage.vo.SystemMessageListInfoVo>
     * @author yangsizhen
     * @date 2022/12/12
     */
    Result<SystemMessageListInfoVo> getNoReadMessageFirstInfo();
}